﻿using System;
using System.Collections.Generic;
//using System.Linq;
using System.Text;
using System.Xml;

namespace TongHopBCTuan2014
{
    class processXML
    {

        public void createFileDM(string name)
        {


            XmlDocument doc = new XmlDocument();
            XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            doc.AppendChild(docNode);

            XmlNode rowsNode = doc.CreateElement("row");
            doc.AppendChild(rowsNode);

            XmlNode ANode = doc.CreateElement("A");
            XmlAttribute AAttribute = doc.CreateAttribute("class");
            AAttribute.Value = "goc";
            ANode.InnerText = "Số Người bắt, tạn giam";
            ANode.Attributes.Append(AAttribute);
            rowsNode.AppendChild(ANode);
            //-------------------------------A-------------------------------------------------
            createNode(doc,rowsNode, "row1", "class", "A", "I.Số cũ");
            createNode(doc, rowsNode, "row2", "class", "A", "II.Số mới(d2=d3+d4+d5+d6+d7)");
            createNode(doc, rowsNode, "row3", "class", "row2", "Tr/đó: +Bắt khẩn cấp");
            createNode(doc, rowsNode, "row4", "class", "row2", "       + Bắt quả tang");
            createNode(doc, rowsNode, "row5", "class", "row2", "       + Bắt truy nã");
            createNode(doc, rowsNode, "row6", "class", "row2", "       + Bắt đầu thú");
            createNode(doc, rowsNode, "row7", "class", "row2", "          + Bắt tự thú");
            createNode(doc, rowsNode, "row8", "class", "A", "III.Số tạm giữ nơi khác chuyển đến");
            createNode(doc, rowsNode, "row9", "class", "A", "IV. Số tạm giữ chuyển đi nơi khác");
            createNode(doc, rowsNode, "row10", "class", "A", "V. Tổng số tạm giữ (d10=d1+d2+d8-d9)");
            createNode(doc, rowsNode, "row11", "class", "A", "VI. Số đã giải quyết");
            createNode(doc, rowsNode, "row12", "class", "row11", "Tr/đó: 1. Khởi tố bị can chuyển tạm giam");
            createNode(doc, rowsNode, "row13", "class", "row11", "2. Khởi tố áp dụng biện pháp ngăn chặn khác");
            createNode(doc, rowsNode, "row14", "class", "row11", "3. Cơ quan bắt giữ trả tự do");
            createNode(doc, rowsNode, "row15", "class", "row14", "Tr/đó: + Trả tự do khi VKS hủy bỏ QĐ tạm giữ theo K3 Điều 86 BLTTHS");
            createNode(doc, rowsNode, "row16", "class", "row14", "       + Trả tự do khi VKS không phê chuẩn QĐ gia hạn tạm giữ");
            createNode(doc, rowsNode, "row17", "class", "row11", "4.VKS trả tự do theo khoản 1 điều 28 LTCVKS");
            createNode(doc, rowsNode, "row18", "class", "A", "VII. Số người tạm giữ chết");
            createNode(doc, rowsNode, "row19", "class", "A", "VIII. Số người tạm giữ chốn trong tuần chưa bắt lại được");
            createNode(doc, rowsNode, "row20", "class", "A", "IX. Số còn tạm giữ (d20=d10-d11-d18-d19)");
            createNode(doc, rowsNode, "row21", "class", "row20", "Tr/đó:+ Số quá hạn tạm giữ");
            //-------------------------------B-------------------------------------------------
            createNode(doc, rowsNode, "B", "class", "goc", "SỐ NGƯỜI BỊ TAM GIAM");
            createNode(doc, rowsNode, "row22", "class", "B", "TI. Số cũ");
            createNode(doc, rowsNode, "row23", "class", "B", "II. Số mới bị tạm giam");
            createNode(doc, rowsNode, "row24", "class", "row23", "Tr/đó:+ Số người từ tạm giữ chuyển sang");
            createNode(doc, rowsNode, "row25", "class", "row23", "      + Số bị can, bị cáo bắt để tạm giam(CA,KS,TA- theo điều 80 - TBLTTHS)");
            createNode(doc, rowsNode, "row26", "class", "B", "III. Số nơi khác chuyển đến");
            createNode(doc, rowsNode, "row27", "class", "B", "IV. Số chuyển đi nơi khác");
            createNode(doc, rowsNode, "row28", "class", "B", "V. Tổng số người tạm giam (d7=d1+d2+d5-d6)");
            createNode(doc, rowsNode, "row29", "class", "B", "VI. Số người đã giải quyết");
            createNode(doc, rowsNode, "row302", "class", "row29", "Tr/đó:+ Hủy bỏ biện pháp tạm giam");
            createNode(doc, rowsNode, "row31", "class", "row29", "+Thay đổi biện pháp ngăn chặn khác");
            createNode(doc, rowsNode, "row32", "class", "row229", "+VKS trả tự do theo khoản 1 điều 28 LTCVKS");
            createNode(doc, rowsNode, "row33", "class", "B", "VII. Số người tạm giam chết");
            createNode(doc, rowsNode, "row34", "class", "B", "VIII. Số người tạm giam trốn trong tuần chưa bắt được");
            createNode(doc, rowsNode, "row35", "class", "B", "VIII. Số còn tạm giam (d14=d7-d8-d12-d13)");
            createNode(doc, rowsNode, "row36", "class", "row35", "Tr/đó: +Số còn tạm giam đã quá hạn tạm giam");
            //-------------------------------C-------------------------------------------------
            createNode(doc, rowsNode, "C", "class", "goc", "PHỤ LỤC KÈM THEO");
            createNode(doc, rowsNode, "row37", "class", "C", "1.Danh sách các trường hợp VKS không phê chuẩn lệnh bắt khẩn cấp(03BCT)");
            createNode(doc, rowsNode, "row38", "class", "C", "1.Danh sách các trường hợp VKS hủy bỏ QĐ tạm giữ (04BCT)");
            createNode(doc, rowsNode, "row39", "class", "C", "1.Danh sách các trường hợp VKS không phê chuẩn QĐ gia hạn tạm giam (05BCT)");
            createNode(doc, rowsNode, "row40", "class", "C", "1.Danh sách các trường hợp VKS hủy bỏ biện pháp tạm giam (06BCT)");
            createNode(doc, rowsNode, "row41", "class", "C", "1.Danh sách các trường hợp VKS không phê chuẩn lệnh bắt tạm giam (04LN)");
            createNode(doc, rowsNode, "row42", "class", "C", "1.Danh sách các trường hợp VKS không phê chuẩn lệnh bắt tạm giam (05LN)");
       

            doc.Save(name);
            
        }
        private void createNode( XmlDocument doc,   XmlNode rowsNode,string nameNode,string Attribute,string valueAttribute, string textNode)
        {
            XmlNode ANode = doc.CreateElement(nameNode);
            XmlAttribute AAttribute = doc.CreateAttribute(Attribute);
            AAttribute.Value = valueAttribute;
            ANode.InnerText = textNode;
            ANode.Attributes.Append(AAttribute);
            rowsNode.AppendChild(ANode);
        }

        public data getdata(string xmlFile)
        {
            data dta = new data();
            XmlDocument xml = new XmlDocument();
            xml.Load(xmlFile); // suppose that myXmlString contains "<Names>...</Names>"

            XmlNodeList xnList = xml.SelectNodes("/row");
            foreach (XmlNode xn in xnList)
            {
                dta.A = xn["A"].InnerText;
                dta.R1 = xn["row1"].InnerText;
                dta.R2 = xn["row2"].InnerText;
                dta.R3 = xn["row3"].InnerText;
                dta.R4 = xn["row4"].InnerText;
                dta.R5 = xn["row5"].InnerText;
                dta.R6 = xn["row6"].InnerText;
                dta.R7 = xn["row7"].InnerText;
                dta.R8 = xn["row8"].InnerText;
                dta.R9 = xn["row9"].InnerText;
                dta.R10 = xn["row10"].InnerText;
                dta.R11 = xn["row11"].InnerText;
                dta.R12 = xn["row12"].InnerText;
                dta.R13 = xn["row13"].InnerText;
                dta.R14 = xn["row14"].InnerText;
                dta.R15 = xn["row15"].InnerText;
                dta.R16 = xn["row16"].InnerText;
                dta.R17 = xn["row17"].InnerText;
                dta.R18 = xn["row18"].InnerText;
                dta.R19 = xn["row19"].InnerText;
                dta.R20 = xn["row20"].InnerText;
                dta.R21 = xn["row21"].InnerText;

                dta.B = xn["B"].InnerText;
                dta.R22 = xn["row22"].InnerText;
                dta.R23 = xn["row23"].InnerText;
                dta.R24 = xn["row24"].InnerText;
                dta.R25 = xn["row25"].InnerText;
                dta.R26 = xn["row26"].InnerText;
                dta.R27 = xn["row27"].InnerText;
                dta.R28 = xn["row28"].InnerText;
                dta.R29 = xn["row29"].InnerText;
                dta.R30 = xn["row30"].InnerText;
                dta.R31 = xn["row31"].InnerText;
                dta.R32 = xn["row32"].InnerText;
                dta.R33 = xn["row33"].InnerText;
                dta.R34 = xn["row34"].InnerText;
                dta.R35 = xn["row35"].InnerText;
                dta.R36 = xn["row36"].InnerText;

                dta.C = xn["C"].InnerText;
                dta.R37 = xn["row37"].InnerText;
                dta.R38 = xn["row38"].InnerText;
                dta.R39 = xn["row39"].InnerText;
                dta.R40 = xn["row40"].InnerText;
                dta.R41 = xn["row41"].InnerText;
                dta.R42 = xn["row42"].InnerText;
                





            }
            return dta;
        }
        
    }
}
